/*
 * Utilities.h
 *
 *  Created on: 2012/7/28
 *      Author: soniclin
 */

#ifndef UTILITIES_H
#define UTILITIES_H

#include "../../sMathLib/Vector3/Vector3.hpp"
#include "../Sphere.h"

namespace ibm
{

class Utilities
{
public:
	Utilities();
	virtual ~Utilities();

	template<typename T, typename FunctionType>
	static T calculateVolumeFraction(const sMathLib::VectorX<int, 3>& iPos, const Sphere<T, ImmersedObject>& sphere, FunctionType vfPloicy);

	//template<typename T, typename FunctionType>
	//static
};

template<typename T, typename FunctionType>
T Utilities::calculateVolumeFraction(const sMathLib::VectorX<int, 3>& iPos, const Sphere<T, ImmersedObject>& sphere, FunctionType vfPloicy)
{
	return vfPloicy(iPos, sphere);
}

}

#endif /* UTILITIES_H_ */
